from typing import List, Dict, Any, Optional

class ConversationManager:
    """对话管理器，负责维护对话历史和构建上下文"""

    def __init__(self):
        self.conversation_history: List[Dict[str, str]] = []
        self.system_message = self._get_system_message()

    def _get_system_message(self) -> str:
        """获取系统提示词"""
        return """你是一个智能助手，需要根据用户问题调用合适的工具：
1. 数学计算问题 → 调用 calculator 工具，参数为数学表达式（如"2+3*4"）
2. 天气查询问题 → 调用 weather 工具，参数为城市名称（如"北京"）
3. 时间查询问题 → 调用 get_datetime 工具，无需参数
4. 用户测试工具调用 -> 调用 test 工具，无需参数 
5 其他问题 → 直接回答，不调用工具

工具调用格式：严格按照提供的工具定义使用，确保参数正确。
回答风格：友好、简洁、准确。"""

    def add_message(self, role: str, content: str) -> None:
        """添加消息到对话历史"""
        self.conversation_history.append({"role": role, "content": content})

    def build_context(self) -> List[Dict[str, str]]:
        """构建完整对话上下文"""
        context = [{"role": "system", "content": self.system_message}]
        context.extend(self.conversation_history)
        return context

    def clear_history(self) -> None:
        """清空对话历史"""
        self.conversation_history = []
